package main

import (
	"fmt"
	"io/ioutil"
)

/*
	文件写入方法1
		1. 打开文件 file, err := os.OpenFile("./text.txt", os.O_CREATE|os.ORDWR, 0666)
			不存在自动创建、读写权限、读写权限(linux)
			os.O_WRONLY 只写
			os.O_Create 创建文件
			os.O_RDONLY	只读
			os.O_RDWR   读写
			os.O_TRUNC  清空
			os.O_APPEND 追加
		2. 写入文件
			file.Write([]byte(str))  写入字节切片数据
			file.WriteString("str")	 写入字符串数据
		3. 关闭文件流
			file.Close()

	文件写入方法2:
		1. 打开文件	file, err := os.OpenFile("./text.txt", os.O_CREATE|os.ORDWR, 0666)
		2. 创建writer对象 writer := bufio.NewWriter(file)
		3. 将数据写入缓存  writer.WriteString("")
		4. 将缓存中的内容写入文件 writer.Flush()
		5. 关闭文件流 file.Close()

	文件写入方法3:
		err := ioutil.WriteFile("./text.txt", []byte(str), 0666)
*/

func main() {
	// file, err := os.OpenFile("./wtext.txt", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0666)
	// defer file.Close()

	// if err != nil {
	// 	fmt.Println(err)
	// 	return
	// }

	// // 写入文件Write
	// var wSlice = []byte("Hello World 233")
	// n, err := file.WriteString("Hello World 222\r\n")
	// fmt.Printf("写入字节数%v\n", n)
	// n, err = file.Write(wSlice)
	// fmt.Printf("写入字节数%v\n", n)

	// // bufio
	// writer := bufio.NewWriter(file)
	// writer.WriteString("Hello Golang") // 写到缓存
	// writer.Flush()                     // 缓存写到文件

	// ioutil
	var wSlice = []byte("Hello World 233")
	err := ioutil.WriteFile("./wtext.txt", wSlice, 0666)
	fmt.Println(err)
}
